﻿namespace Anderson.Utils
{
    public enum DebugLevel
    {
        OFF = 0,    //关闭日志记录
        TRACE,  //指定细粒度比DEBUG更低的信息事件
        DEBUG,  //指定细粒度信息事件是最有用的应用程序调试
        INFO,   //指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
        WARN,   //指定具有潜在危害的情况
        ERROR,  //错误事件可能仍然允许应用程序继续运行
        FATAL,  //指定非常严重的错误事件，这可能导致应用程序中止
        ALL     //各级包括自定义级别
    }

    public interface ILog
    {
        DebugLevel GetLevel();
        void SetLevel(DebugLevel level);

        void Trace(string message);

        void Debug(string message);

        void Info(string message);

        void Warn(string message);

        void Error(string message);

        void Fatal(string message);
    }
}